#ifndef BUSCARCLIENTE_H
#define BUSCARCLIENTE_H

#include <QWidget>
#include <QString>

/****************************************************
 * INCLUDES PARA TODO LO RELACIONADO CON LA CONEXION*
 * CON LA BASE DE DATOS SQLITE                      *
 ****************************************************/
#include "../conexion/conexion.h"

typedef struct datosC{
    QString name;
    QString apellidos;
}datosC;

namespace Ui {
class buscarcliente;
}

class buscarcliente : public QWidget
{
    Q_OBJECT
    
public:
    explicit buscarcliente(QWidget *parent = 0);
    ~buscarcliente();
    //FUNCION QUE SE ENCARGA DE INICIAR LOS
    //DATOS NECESARIOS PARA MOSTRAR LOS CONTACTOS
    void iniciaDatos(void );
    
private:
    Ui::buscarcliente *ui;
    //PUNTERO A LA CLASE DE LA CONEXION
    conexionDB* cnnDb;
    //PUNTERO A LISTA ENLAZADA QUE ALMACENA LOS NOMBRES
    //DE LOS CONTACTOS
    datosCnt* dtsCnt;
    Datos* dtsCntShw;
    //FUNCION QUE SE ENCARGA DE LLENAR EL COMBOBOX
    void loadCbCnt( void );
    //FUNCION RECURSIVA QUE SE ENCARGA DE LLENAR EL
    //COMBOBOX
    void addCbDts( struct datosCnt **list );
    //FUNCION QUE SE ENCARGA DE LIBERAR LA MEMORIA UTILIZADA POR
    //LA LISTA ENLAZADA SIMPLE
    void clearMDts(void );
    //FUNCION QUE SE ENCARGA DE LIMPIAR LOS CAMPOS
    //QUE MUESTRAN LOS DATOS DEL CLIENTE
    void clearCampsDats( void );
    //FUNCION QUE RETORNA EL NOMBRE Y APELLIDOS A BUSCAR
    datosC* brwDtsClnt( datosC *dats, datosCnt **list,int sel );

private slots:
    //SLOT PARA COMENZAR A LIBERAR MEMORIA UTILIZADA
    void clearMemmoryAll( void );
    //SLOT PARA SABER QUE ITEM SE HA SELECCIONADO
    //DEL COMBOBOX Y MOSTRAR SUS DATOS
    void selectedCB( void );
    //SLOT QUE ES PARA BUSCAR LOS DATOS DEL CONTACTO SELECCIONADO
    void buscaDatosClnt(int seleccion );

signals:
    void buscar( int );
};

#endif // BUSCARCLIENTE_H
